In the past, many large-scale computing projects relied on large physical data centers with towering racks of computers. Now, distributed computing allows anyone with the resources to buy server space to run as many instances of their preferred computing stack as desired. Further efficiency improvements have been introduced in the form of application containers that allow administrators to run applications without requiring the resources necessary to simulate an entire virtualized operating system for each virtualized application. Containers reduce the processing and storage requirements for each application, allowing greater numbers of applications to be run on the same host.
However, with the flexibility and efficiency provided by containers comes greater pressures to maximize the opportunities that containers provide. As computing consumers rely increasingly on container technology and as computing service vendors attempt to improve their services while meeting performance objectives, some usage patterns of containers may present bottlenecks. For example, one advantage of containers over virtual machines is the ability to quickly start a new container. However, the ability to quickly start a container may be hampered by the location of an image used by the container. For example, if a container image is not present on the node which is meant to host the container, container startup time may be measured in minutes rather than seconds.
The instant disclosure, therefore, identifies and addresses a need for systems and methods for provisioning containers in computer clusters.